package cn.edu.seu.ssny.common.utils;

import cn.edu.seu.ssny.enums.ResultCodeEnum;
import cn.edu.seu.ssny.exception.SsnyException;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class FileUtils {
    /**
     * 功能描述：
     * <上传文件
     *
     * @param file       文件体，由POST请求提交
     * @param fileFolder 文件存储路径，使用UUID随机生成
     * @return 返回文件在文件服务器上的存储名
     * @throws IOException
     */
    public static String upload(MultipartFile file, String fileFolder) throws IOException {
        if (file.isEmpty()) {
            throw new SsnyException(ResultCodeEnum.ERROR_UPLOADFILE_EMPTY);
        } else {
            //原始图片名
            String fileName = file.getOriginalFilename();
            //图片后缀名
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            //新的文件名
            fileName = UUID.randomUUID() + suffixName;
            File dest = new File(fileFolder + fileName);
            if (!dest.getParentFile().exists()) {
                dest.getParentFile().mkdirs();
            }
            file.transferTo(dest);
            return fileName;
        }
    }
}
